package br.rfpm.service;

import java.io.Serializable;
import java.util.List;

/**
 * Interface básica para os services.
 * 
 *
 */
public interface GenericService<T, PK extends Serializable> {

	T consultarPorId(PK pk);

	T carregar(PK pk);

	T inserir(T entidade);

	T alterar(T entidade);

	void excluir(T entidade);

	List<T> listar();

	List<T> listar(String orderByColumn, boolean asc);

	List<T> listar(int offset, int maxResults);

	List<T> listar(int offset, int maxResults, String orderByColumn, boolean asc);

	List<T> listar(T entity);

	List<T> listar(T entity, String orderByColumn, boolean asc);

	List<T> listar(T entity, int offset, int maxResults);

	List<T> listar(T entity, int offset, int maxResults, String orderByColumn, boolean asc);

	Integer count();

	Integer count(T entity);
	
}
